//package cn.nexd.location.utils;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import cn.nexd.location.collector.bean.WifiCollectorResult;
//import cn.nexd.location.collector.bean.WifiSignalDeal;
//
///**
// * Created by lawrence on 2015/11/14.
// */
//public class WifiSignalHelper {
//
//
//    private static List<List<WifiCollectorResult>> wifiDateLists = new ArrayList<List<WifiCollectorResult>>();
//    private static Map<String, WifiSignalDeal> wifiSignalDealMap;
//    private static List<WifiCollectorResult> avgWifiDataResults;
//
//    public static List<WifiCollectorResult> getWeightedAvgWifiDataResult(List<WifiCollectorResult> wifiDataResults) {
//        if (avgWifiDataResults == null) {
//            avgWifiDataResults = new ArrayList<WifiCollectorResult>();
//        } else {
//            avgWifiDataResults.clear();
//        }
//        if (wifiSignalDealMap == null) {
//            wifiSignalDealMap = new HashMap<String, WifiSignalDeal>();
//        }
//        if (wifiDateLists.size() >= 5) {
//            wifiDateLists.remove(0);
//        }
//        wifiDateLists.add(wifiDataResults);
//
//        for (List<WifiCollectorResult> wifiDataResultss : wifiDateLists) {
//            for (WifiCollectorResult wifiDataResult : wifiDataResultss) {
//                if (wifiSignalDealMap.containsKey(wifiDataResult.getBSSID())) {
//                    wifiSignalDealMap.get(wifiDataResult.getBSSID()).add(wifiDataResult.getLevel());
//                } else {
//                    WifiSignalDeal wifiSignalDeal = new WifiSignalDeal();
//                    wifiSignalDeal.add(wifiDataResult.getLevel());
//                    wifiSignalDealMap.put(wifiDataResult.getBSSID(), wifiSignalDeal);
//                }
//            }
//        }
//        for (Map.Entry<String, WifiSignalDeal> entry : wifiSignalDealMap.entrySet()) {
//            WifiCollectorResult avgWifiDataResult = new WifiCollectorResult();
//            avgWifiDataResult.setBSSID(entry.getKey());
//            avgWifiDataResult.setLevel(entry.getValue().getWeightedAvgValue());
//            avgWifiDataResults.add(avgWifiDataResult);
//        }
//        wifiSignalDealMap.clear();
//        return avgWifiDataResults;
//    }
//
//    public static List<WifiCollectorResult> getAvgWifiDataResult(List<WifiCollectorResult> wifiDataResults) {
//        if (avgWifiDataResults == null) {
//            avgWifiDataResults = new ArrayList<>();
//        } else {
//            avgWifiDataResults.clear();
//        }
//        if (wifiSignalDealMap == null) {
//            wifiSignalDealMap = new HashMap<>();
//        }
//        if (wifiDateLists.size() >= 3) {
//            wifiDateLists.remove(0);
//        }
//        wifiDateLists.add(wifiDataResults);
//
//
//        for (List<WifiCollectorResult> wifiDataResultss : wifiDateLists) {
//            for (WifiCollectorResult wifiDataResult : wifiDataResultss) {
//                if (wifiSignalDealMap.containsKey(wifiDataResult.getBSSID())) {
//                    wifiSignalDealMap.get(wifiDataResult.getBSSID()).add(wifiDataResult.getLevel());
//                } else {
//                    WifiSignalDeal wifiSignalDeal = new WifiSignalDeal();
//                    wifiSignalDeal.add(wifiDataResult.getLevel());
//                    wifiSignalDealMap.put(wifiDataResult.getBSSID(), wifiSignalDeal);
//                }
//            }
//        }
//
//        for (Map.Entry<String, WifiSignalDeal> entry : wifiSignalDealMap.entrySet()) {
//            WifiCollectorResult avgWifiDataResult = new WifiCollectorResult();
//            avgWifiDataResult.setBSSID(entry.getKey());
//            avgWifiDataResult.setLevel(entry.getValue().getRecAvgValue());
//            avgWifiDataResults.add(avgWifiDataResult);
//        }
//        wifiSignalDealMap.clear();
//        return avgWifiDataResults;
//    }
//}